Feat/efficientad light - #170
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔗 Related Issue
Fixes #
📝 Description
This PR adds EfficientAD support to AnomaVision Production Autopilot and extends the performance regression tests to cover all supported anomaly detection algorithms.
Main changes
Added EfficientAD as an Autopilot candidate alongside PaDiM and PatchCore.
Added
--efficientad_modelto the Autopilot CLI.Updated Autopilot model selection to compare PaDiM, PatchCore, and EfficientAD using the same validation data.
Added EfficientAD latency and accuracy metrics to the Autopilot report.
Preserved the existing fancy HTML production report and extended it to include EfficientAD.
Added configuration-driven inference performance tests for all three algorithms.
Updated the README with EfficientAD and Autopilot documentation.
Example:
🔄 Type of Change
🐛 Bug fix (non-breaking change which fixes an issue)
🚀 New feature (non-breaking change which adds functionality)
💥 Breaking change (fix or feature that would cause existing functionality to not work as expected)
📖 Documentation update
🏗️ Infrastructure / CI/CD update
🧪 Hardware & Matrix Testing
I have successfully built and tested this code using
uvon:anomavision[cpu](Standard/Edge)anomavision[cu121](CUDA 12.1)anomavision[cu124](CUDA 12.4)anomavision[cu118](CUDA 11.8)Host OS used for testing:
Linux / Ubuntu
Windows (Native or WSL2)
macOS
Performance benchmark
The inference performance tests were executed for:
PaDiM
PatchCore
EfficientAD
Example measured results on CPU:
Algorithm | Inference | FPS | Status -- | -- | -- | -- PaDiM | 65.23 ms/batch | 30.66 | ✅ PatchCore | 52.95 ms/batch | 37.77 | ✅ EfficientAD | 72.88 ms/batch | 27.44 |The EfficientAD regression test correctly fails when the configured latency threshold is exceeded.
✅ Developer Checklist
My code follows the core style guidelines of this project (Ruff/Black formatting).
I have run the relevant pytest tests locally.
Lockfile Guard: If I added or modified a dependency in
pyproject.toml, I have runuv lock --python 3.10and committed the updateduv.lockfile.I have added tests that prove my fix is effective or that my feature works.
I have updated the documentation accordingly.
📸 Screenshots / Visual Proof
The Autopilot HTML report includes:
Model comparison cards
Selected production model
Image AUROC
Pixel AUROC
Median and P95 latency
Anomaly coverage
False-positive rate
Calibrated threshold
Localization health
Deployment recommendation
The report is generated as: